package cn.aigoubuy.service.impl;

import cn.aigoubuy.dao.CategoryDao;
import cn.aigoubuy.dao.ilpl.CategoryDaoImpl;
import cn.aigoubuy.domain.Category;
import cn.aigoubuy.service.CategoryService;
import cn.aigoubuy.utils.JedisUtils;
import com.alibaba.fastjson.JSONObject;
import redis.clients.jedis.Jedis;

import java.sql.SQLException;
import java.util.List;

public class CategoryServiceImpl implements CategoryService {
    private CategoryDao categoryDao = new CategoryDaoImpl();
    @Override
    public List<Category> findAll() throws SQLException {
        return categoryDao.findAll();
    }

    @Override
    public String findAllByAjax() throws Exception {
        Jedis j = null;
        String value = null;
        try {
            // 从redis获取分类信息
            //1.获取连接
            j = JedisUtils.getJedis();
            // 2.获取数据，判断数据是否为空
            value = j.get("category_list");
            // 2.1 若不为空，直接返回数据
            if(value != null) {
                return value;
            }
            // 2.2 若为空，从mysql数据库中获取，并放入redis中
            List<Category> clist = findAll();
            // 将clist转为json返回且放入redis中即可
            value = JSONObject.toJSONString(clist);
            // 将value放入redis中
            j.set("category_list",value);
            return value;
        } finally {
            // 释放jedis
            JedisUtils.closeJedis(j);
        }
    }

}